﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SilverTile.Viewports;
using System.Windows;

namespace SilverTile.Sprites
{

    public interface ISprite : IRenderable
    {

        int X { get; set; }
        int Y { get; set; }
        int Z { get; set; }
        int OriginX { get; }
        int OriginY { get; }
        Boolean Blocking { get; set; }
        bool IsVisible { get; set; }
        IViewport Viewport { get; set; }
        Rect Area { get; }
        Rect BackgroundArea { get; }

        Collision CollidesWithDir(ISprite otherSprite);
        Collision CollidesWithDir(ISprite otherSprite, int expandBy);
        Collision CollidesWithDir(ISprite otherSprite, int x, int y, int expandBy);
        Collision CollidesWithBackground(ISprite otherSprite, int x, int y, int expandBy);
        bool CollidesWith(ISprite otherSprite);
        bool CollidesWith(ISprite otherSprite, int x, int y);
        bool CollidesWith(ISprite otherSprite, int x, int y, int expandBy);

    }

}
